package org.xlp.expression;

/**
 * Description: 表达式单元格解析器接口
 * <br/>date: 2024/12/26 12:05
 *
 * @version 1.0
 * @author: xlp
 */
public interface IExpressionItemParser {
    /**
     * 表达式解析操作
     * @throws ExpressionParseException 假如表达式不合法，则抛出该异常
     */
    void parse();

    /**
     * 获取表达式的所有项
     * @return
     */
    String[] getExpressionItems();

    /**
     * 获取表达式的复杂度
     * @return
     */
    ExpressionComplexity getExpressionComplexity();

    /**
     * 表达式中是否有括号
     * @return true：有，false：无
     */
    boolean hasBracket();

    /**
     * 表达式中是否是大整数运算
     * @return true：是，false：否
     */
    boolean isBigInteger();

    /**
     * 表达式是否包含科学计算
     * @return true：是，false：否
     */
    boolean hasE();

    /**
     * 把数学表达式字符串转换成逆波兰表达式，并与数组格式返回
     * @return
     */
    String[] toRPN();
}
